package net.yangying.androidframework.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.yangying.androidframework.R;
import android.content.Context;

public class DomainUtil {

	public static final String domainReg = "^[a-zA-Z0-9-\u4e00-\u9fa5]{1,63}$";
	public static Pattern patternReg = Pattern.compile(domainReg);
	
	public static final String domain = "[^//\\s@]*?\\.(com|cn|net|org|biz|info|cc|tel|tv|me|so|co|gov|org|name|asia|mobi|中国|网络|公司|xn--[^/]*)";
	public static final Pattern patternDn = Pattern.compile(domain,Pattern.CASE_INSENSITIVE);
	
	static String[] xCN = { ".com.cn", ".net.cn", ".gov.cn", ".edu.cn",  
        ".org.cn", ".mil.cn", ".ac.cn", ".bj.cn", ".sh.cn", ".tj.cn",  
        ".cq.cn", ".he.cn", ".sx.cn", ".nm.cn", ".ln.cn", ".jl.cn",  
        ".hl.cn", ".js.cn", ".zj.cn", ".ah.cn", ".fj.cn", ".jx.cn",  
        ".sd.cn", ".ha.cn", ".hb.cn", ".hn.cn", ".gd.cn", ".gx.cn",  
        ".hi.cn", ".sc.cn", ".gz.cn", ".yn.cn", ".xz.cn", ".sn.cn",  
        ".gs.cn", ".qh.cn", ".nx.cn", ".xj.cn", ".tw.cn", ".hk.cn",  
        ".mo.cn" };
	

	/**
	 * 域名注册规则：
	 * 1.只能包含a-z A-Z 0-9、-
	 * 2.-不能单独注册、-不能连续出现2次及以上、-不能开头也不能结尾
	 * 3.最多可以注册63个字符
	 * @param middle
	 * @return
	 */
	public static boolean domainRegPass(String middle){
		if(middle == null)
			return false;
		Matcher m = patternReg.matcher(middle);
		if(m.find() && middle.indexOf(Constants.MINUS_DOUBLE)==-1
				&&!middle.equals(Constants.MINUS)
				&&!middle.startsWith(Constants.MINUS)
				&&!middle.endsWith(Constants.MINUS)){
			return true;
		}
		return false;
	}
	public static boolean isDomain(String text){
		Matcher matcher = patternDn.matcher(text);
		if(matcher.find()){
			return true;
		}
		return false;
	}
	public static String getDomain(String text){
		Matcher matcher = patternDn.matcher(text);
		String result = null;
		if(matcher.find()){
			result = matcher.group();
		}
		return result;
	}

	public static String deleteWWW(Context context, String domainName){
		if(domainName !=null){
			if(domainName.toLowerCase().startsWith(Constants.WWW + Constants.DOT)){
				String[] suffixArray = context.getResources().getStringArray(R.array.domain_suffix);
				String dn = domainName.toLowerCase().replaceFirst(Constants.WWW + Constants.DOT, Constants.EMPTY);
				boolean flag = false;
				for(String suffix:suffixArray){
					if(!"全选".equals(suffix)){
						if(suffix.equals(dn)){
							flag = true;
							break;
						}
					}
				}
				for(String s:xCN){
					if(s.equals(Constants.DOT+dn)){
						flag = true;
						break;
					}
				}
				if(!flag){
					return dn;
				} else {
					return domainName;
				}
			}
		}
		return domainName;
	}
}
